### 1/1 ДЕНЬ

Модуль 1. Понятие класса. Инкапсуляция  (4 ак. ч.)
* Класс и экземпляр класса.
* Данные экземпляра, методы экземпляра и свойства экземпляра.
* Понятие атрибута.
* Практикум: Создание класса и его экземпляров.

### 1/2 ДЕНЬ

Модуль 2. Наследование  (4 ак. ч.)
* Принцип утиной типизации.
* Понятия базового класса и производного класса.
* Функция isinstance и ее применение.
* Практикум: Создание производного класса, применение экземпляров базового и производного класса.

### 2/3 ДЕНЬ


Модуль 3. Полиморфизм и абстракция  (4 ак. ч.)
* Подмена методов в производном классе.
* Понятие абстрактного класса.
* `Объектно-ориентированный дизайн`
* Практикум: Применение полиморфных классов.

### 2/4 ДЕНЬ

Модуль 4. Практическая работа (4 ак.ч)
>Паттерны проектирования 
* Принципы банды четырех
* Практикум: Применение абстракций и паттернов. Пример Фабрика

### 3/5 ДЕНЬ


Модуль 5. Алгоритмы сортировки и поиска  (4 ак. ч.)
* Понятие сложности алгоритма.
* Основные алгоритмы сортировки и поиска.
* Практикум. Поиск информации по заданному критерию.

### 3/6 ДЕНЬ

Модуль 6. Алгоритмы поиска на графах  (4 ак. ч.)
* Поиск в ширину.
* Поиск в глубину.
* Практикум. Построение пути в графе.


### 4/7 ДЕНЬ

Модуль 7. Структуры данных  (4 ак. ч.)

* Понятие о структуре данных.
* Список и запись как основные структуры данных.
* Таблица и другие практически важные структуры данных.
* Практикум. Представление записей и таблиц в программе на языке Python.

### 4/8 ДЕНЬ


Модуль 8. Стандартные абстрактные типы данных  (4 ак. ч.)
* Контейнерные типы.
* Библиотечные модули collections и collections.abc
* Практикум. Схема «Компонент-Контейнер» и ее применение.

### 5/9 ДЕНЬ



Модуль 9. Хранение данных вне программы  (4 ак. ч.)
* Сохранение и восстановление данных. Библиотечный модуль pickle.
* Понятие об объектно-реляционном соответствии.
* Практикум. Применение модуля pickle для хранения и передачи данных.

### 5/10 ДЕНЬ


Модуль 10. Практическая работа  (4 ак. ч.)
* Примечание
* Примеры практических задач, которые могут быть рассмотрены на курсе. 

Список не является исчерпывающим. Конкретные темы определяются преподавателем по согласованию со слушателями.
* Поиск маршрута между двумя пунктами.
* Обработка XML-документа.
* Комплектование и обработка заказа.
* Игра в шахматы (программная часть).
* Веб-скрейпинг.
* Составление расписания учебных занятий.
* Написание игрового сервера.
* Расчет простой электрической сети постоянного тока.
* Обработка видео с использованием внешнего ПО.


Предложения в ТП



1.	Анонимные (lambda) функции
2.	Области видимости переменных. Ключевые слова global и nonlocal
3.	Замыкания в Python
4.	Введение в декораторы функций
5.	Декораторы с параметрами. Сохранение свойств декорируемых функций
Модули и пакеты. Работа с файлами




Генераторы. Некоторые полезные функции
1.	Выражения генераторы
2.	Функция-генератор. Оператор yield
3.	Функция map. Примеры ее использования
4.	Функция filter для отбора значений итерируемых объектов
5.	Функция zip. Примеры использования
6.	Особенности сортировки через sort() и sorted()
7.	Аргумент key для сортировки коллекций по ключу
8.	Функции isinstance и type для проверки типов данных
9.	Функции all и any. Примеры их использования




1.	Конструкция match/case. Первое знакомство
2.	Конструкция match/case с кортежами и списками
3.	Конструкция match/case со словарями и множествами
4.	Конструкция match/case. Примеры и особенности использования


